home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / -seriously_amiga- / shareware / programming / other / hunk / hoppers / ace_235.hop next >
Text File  |  1997-12-01  |  7KB  |  205 lines

  1. ;*************************************************************************
  2. ;** Ace 2.35 MUL(S)/DIV(S)/MOD(S)                                       **
  3. ;** Contributor: L.Lucius                               Sept 23rd 1995  **
  4. ;** Modified for HOp:   Thomas Richter  (thor)          Nov  1st  1997  **
  5. ;** Function:    Modify 68000 math routines to use 68020+ instructions. **
  6. ;*************************************************************************
  7.  
  8. ;*************************************************************************
  9. ;
  10. ; ACE DIVS()
  11. ;
  12. #match
  13. #code
  14. 202F 0008                       ;   MOVE.L      0008(A7),D0
  15. 6A02                            ;   BPL.B       0008
  16. 4480                            ;   NEG.L       D0
  17. 222F 0004                       ;   MOVE.L      0004(A7),D1
  18. 6A08                            ;   BPL.B       0016
  19. 4481                            ;   NEG.L       D1
  20. 0A2F 0080 0008                  ;   EORI.B      ;80,0008(A7)
  21. 4EB9 RRRR RRRR                  ;   JSR         00.00000104
  22. 4A2F 0008                       ;   TST.B       0008(A7)
  23. 6A02                            ;   BPL.B       0024
  24. 4480                            ;   NEG.L       D0
  25. 4E75                            ;   RTS
  26. ;
  27. ;
  28. #replace
  29. 202F 0008                       ;   MOVE.L      0008(A7),D0
  30. 4C6F 0800 0004                  ;   DIVS.L      0004(A7),D0
  31. 4E75                            ;   RTS
  32. #end
  33.  
  34.  
  35. ;*************************************************************************
  36. ;
  37. ; DIVS()
  38. ;
  39. #match
  40. #code
  41. 202F 0004                       ;   MOVE.L      0004(A7),D0
  42. 6A02                            ;   BPL.B       002E
  43. 4480                            ;   NEG.L       D0
  44. 222F 0008                       ;   MOVE.L      0008(A7),D1
  45. 6A08                            ;   BPL.B       003C
  46. 4481                            ;   NEG.L       D1
  47. 0A2F 0080 0004                  ;   EORI.B      #80,0004(A7)
  48. 4EB9 RRRR RRRR                  ;   JSR         00.00000104
  49. 4A2F 0004                       ;   TST.B       0004(A7)
  50. 6A02                            ;   BPL.B       004A
  51. 4480                            ;   NEG.L       D0
  52. 4E75                            ;   RTS
  53. ;
  54. ;
  55. #replace
  56. 222F 0004                       ;   MOVE.L      0004(A7),D0
  57. 4C6F 0800 0008                  ;   DIVS.L      0008(A7),D0
  58. 4E75                            ;   RTS
  59. #end
  60.  
  61.  
  62. ;*************************************************************************
  63. ;
  64. ; MULS()
  65. ;
  66. #match
  67. #code
  68. 202F 0004                       ;   MOVE.L      0004(A7),D0
  69. 6A02                            ;   BPL.B       0054
  70. 4480                            ;   NEG.L       D0
  71. 222F 0008                       ;   MOVE.L      0008(A7),D1
  72. 6A08                            ;   BPL.B       0062
  73. 4481                            ;   NEG.L       D1
  74. 0A2F 0080 0004                  ;   EORI.B      #80,0004(A7)
  75. 4EB9 RRRR RRRR                  ;   JSR         00.000000E8
  76. 4A2F 0004                       ;   TST.B       0004(A7)
  77. 6A02                            ;   BPL.B       0070
  78. 4480                            ;   NEG.L       D0
  79. 4E75                            ;   RTS
  80. ;
  81. ;
  82. #replace
  83. 202F 0004                       ;   MOVE.L      0004(A7),D0
  84. 4C2F 0800 0008                  ;   MULS.L      0008(A7),D0
  85. 4E75                            ;   RTS
  86. #end
  87.  
  88.  
  89.  
  90. ;*************************************************************************
  91. ;
  92. ; ACE MODS()
  93. ;
  94. #match
  95. #code
  96. 202F 0008                       ;   MOVE.L      0008(A7),D0
  97. 6A02                            ;   BPL.B       007A
  98. 4480                            ;   NEG.L       D0
  99. 222F 0004                       ;   MOVE.L      0004(A7),D1
  100. 6A02                            ;   BPL.B       0082
  101. 4481                            ;   NEG.L       D1
  102. 4EB9 RRRR RRRR                  ;   JSR         00.00000104
  103. 2001                            ;   MOVE.L      D1,D0
  104. 4A2F 0008                       ;   TST.B       0008(A7)
  105. 6A02                            ;   BPL.B       0092
  106. 4480                            ;   NEG.L       D0
  107. 4E75                            ;   RTS
  108. ;
  109. ;
  110. #replace
  111. 202F 0008                       ;   MOVE.L      0008(A7),D0
  112. 4C6F 0801 0008                  ;   DIVSL.L     0004(A7),D1:D0
  113. C141                            ;   EXG         D0,D1
  114. 4E75                            ;   RTS
  115. #end
  116.  
  117.  
  118.  
  119. ;*************************************************************************
  120. ;
  121. ; MODS()
  122. ;
  123. #match
  124. #code
  125. 202F 0004                       ;   MOVE.L      0004(A7),D0
  126. 6A02                            ;   BPL.B       009C
  127. 4480                            ;   NEG.L       D0
  128. 222F 0008                       ;   MOVE.L      0008(A7),D1
  129. 6A02                            ;   BPL.B       00A4
  130. 4481                            ;   NEG.L       D1
  131. 4EB9 RRRR RRRR                  ;   JSR         00.00000104
  132. 2001                            ;   MOVE.L      D1,D0
  133. 4A2F 0004                       ;   TST.B       0004(A7)
  134. 6A02                            ;   BPL.B       00B4
  135. 4480                            ;   NEG.L       D0
  136. 4E75                            ;   RTS
  137. ;
  138. ;
  139. #replace
  140. 202F 0004                       ;   MOVE.L      0004(A7),D0
  141. 4C6F 0801 0008                  ;   DIVSL.L     0008(A7),D1:D0
  142. C141                            ;   EXG         D0,D1
  143. 4E75                            ;   RTS
  144. #end
  145.  
  146.  
  147. ;*************************************************************************
  148. ;
  149. ; DIVU()
  150. ;
  151. #match
  152. #code
  153. 202F 0004                       ;   MOVE.L      0004(A7),D0
  154. 222F 0008                       ;   MOVE.L      0008(A7),D1
  155. 4EB9 RRRR RRRR                  ;   JSR         00.00000104
  156. 4E75                            ;   RTS
  157. ;
  158. ;
  159. #replace
  160. 202F 0004                       ;   MOVE.L      0004(A7),D0
  161. 4C6F 0000 0008                  ;   DIVU.L      0008(A7),D0
  162. 4E75                            ;   RTS
  163. #end
  164.  
  165.  
  166. ;*************************************************************************
  167. ;
  168. ; MULU()
  169. ;
  170. #match
  171. #code
  172. 202F 0004                       ;   MOVE.L      0004(A7),D0
  173. 222F 0008                       ;   MOVE.L      0008(A7),D1
  174. 4EB9 RRRR RRRR                  ;   JSR         00.000000E8
  175. 4E75                            ;   RTS
  176. ;
  177. ;
  178. #replace
  179. 202F 0004                       ;   MOVE.L      0004(A7),D0
  180. 4C2F 0000 0008                  ;   MULU.L      0008(A7),D0
  181. 4E75                            ;   RTS
  182. #end
  183.  
  184.  
  185. ;*************************************************************************
  186. ;
  187. ; MODU()
  188. ;
  189. #match
  190. #code
  191. 202F 0004                       ;   MOVE.L      0004(A7),D0
  192. 222F 0008                       ;   MOVE.L      0008(A7),D1
  193. 4EB9 RRRR RRRR                  ;   JSR         00.00000104
  194. 2001                            ;   MOVE.L      D1,D0
  195. 4E75                            ;   RTS
  196. ;
  197. ;
  198. #replace
  199. 202F 0004                       ;   MOVE.L      0004(A7),D0
  200. 4C6F 0001 0008                  ;   DIVUL.L     0008(A7),D1:D0
  201. C141                            ;   EXG         D0,D1
  202. 4E75                            ;   RTS
  203. #end
  204.  
  205.